package cn.xxliang.platapp.pojo.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;

@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "OrderRecordInfoDto", description = "订购记录表DTO")
public class OrderRecordInfoDto {
    @ApiModelProperty(value = "订单ID",required = true)
    @NotNull(message = "订单ID不能为空")
    private String orderId;

    @ApiModelProperty(value = "手机号",required = true)
    @NotNull(message = "手机号不能为空")
    private String msisdn;

    @ApiModelProperty(value = "产品ID",required = true)
    @NotNull(message = "产品ID不能为空")
    private String productId;

    @ApiModelProperty(value = "包关系",required = true)
    @NotNull(message = "包关系不能为空")
    private String packageId;

    @ApiModelProperty(value = "元素ID",required = true)
    @NotNull(message = "元素ID不能为空")
    private String elementId;

    @ApiModelProperty(value = "qos订购模块分配",required = true)
    @NotNull(message = "qos订购模块分配不能为空")
    private String qosProductId;

    @ApiModelProperty(value = "平台产品ID",required = true)
    @NotNull(message = "平台产品ID不能为空")
    private String platformProductId;

    @ApiModelProperty(value = "商用产品ID",required = true)
    @NotNull(message = "商用产品ID不能为空")
    private String businessProductId;

    @ApiModelProperty(value = "区域ID",required = true)
    @NotNull(message = "区域ID不能为空")
    private String areaId;

    @ApiModelProperty(value = "消息ID",required = true)
    @NotNull(message = "消息ID不能为空")
    private String messageId;

    @ApiModelProperty(value = "订单步骤 1发起订购2业务信息校验3能力订购4CB订购5订购结果",required = true)
    @NotNull(message = "订单步骤不能为空")
    private Integer orderStep;

    @ApiModelProperty(value = "接口状态 0-待订购 1-切片成功 2-切片失败 3-cbs成功4-cbs失败",required = true)
    @NotNull(message = "接口状态不能为空")
    private Integer interfaceStatus;

    @ApiModelProperty(value = "订单类型1-订购2-退订",required = true)
    @NotNull(message = "订单类型不能为空")  
    private Integer orderType;

    @ApiModelProperty(value = "生效时间",required = true)
    @NotNull(message = "生效时间不能为空")
    private String effectTime;

    @ApiModelProperty(value = "终止时间",required = true)
    @NotNull(message = "终止时间不能为空")
    private String terminateTime;

    @ApiModelProperty(value = "更新时间")
    private String updateTime;

    @ApiModelProperty(value = "时间戳")
    private Long timestamp;

    @ApiModelProperty(value = "上游系统id",required = true)
    @NotNull(message = "上游系统id不能为空")
    private String northSystemId;

    @ApiModelProperty(value = "订单记录ID")
    private String orderRecordId;

    @ApiModelProperty(value = "创建时间")
    private String createTime;
}


